โพรโทคอล OpenWebNet ของ OpenWebNet

โพรโทคอลนี้ถูกคิดให้เป็นอิสระจากเทคโนโลยีที่เคยใช้งานอยู่ ยกตัวอย่างเช่น เป็นไปได้ที่จะใช้ซอฟต์แวร์ supervisor เชื่อมต่อกันโดย อีเทอร์เน็ต, โดย serial RS232 หรือ โดย USB ไปยังเกตเวย์ที่ถูกเชื่อมต่อโดยตรงกับระบบ domotic ซิสเต็ม

ความต้องการเพียงเล็กน้อย คือ ความเป็นไปได้ในการใช้งาน DTMF tones บนสายโทรศัพท์พื้นฐาน PSTN เพื่อการส่งข้อความ

ทุกคนสามารถที่จะเพิ่มเติมโพรโทคอล message ตามความต้องการ เพียงแค่นำเสนอ RFC ของตัวเอง จะมีการตรวจสอบอย่างอัตโนมัติและถูกใส่ไว้ให้ถ้าหากข้อเพิ่มเติมนั้นตรงตามเงื่อนไขของ OpenWebNet syntax

Syntax

OpenWebNet message มีโครงสร้างประกอบด้วย ความยาว field ตัวแปร และถูกคั่นโดยตัวอักษรพิเศษ '*' จากนั้นจะถูกปิดท้ายด้วยเครื่องหมาย '##'

ตัวอักษรที่จะถูกยอมรับค่าใน field จะเป็นตัวเลข และเครื่องหมาย '#'

โครงสร้างของ message ที่ได้จะมีลักษณะดังนี้:field1*field2…*fieldN##

fields ดังตัวอย่างด้านล่างถูกรับค่าโดย:WHOWHEREWHATDIMENSIONVALUE

WHO

เป็นตัวระบุว่าฟังก์ชันใดในระบบ domotic ซิสเต็ม ที่ถูก OpenWebNet message อ้างอิงถึงตัวอย่าง: WHO = 1, เป็นการระบุ message ว่าต้องการจัดการในระบบ lighting ซิสเต็ม

WHERE

เป็นการระบุถึงกลุ่มของอ็อบเจกต์ที่ถูกอ้างอิงถึงใน OpenWebNet message ซึ่งสามารถเป็นอ็อบเจกต์เดียว หรือกลุ่มของอ็อบเจกต์หรือ environment ที่ต้องการระบุจำเพาะหรือระบุทั้งระบบก็ได้

สำหรับทุก WHO (หรือสำหรับทุกๆฟังก์ชัน) จะมีตารางค่า WHERE ที่ถูกกำหนดไว้โดยเฉพาะ

ทั้งนี้ tag ของ WHERE สามารถมีพารามิเตอร์เพิ่มเติมได้: WHERE#PAR1#PAR2… #PARn.

ตัวอย่าง where: ไฟทุกดวงของ กลุ่ม 1, เซนเซอร์ 2 ของโซน 1 ของระบบเตือนภัย, ...ฯลฯ--all the lights of group 1, sensor 2 of zone 1 of alarm system, etc…

WHAT

เป็นการระบุถึงแอคชั่นที่ต้องการทำ หรือสถานะสำหรับการอ่าน สำหรับทุก WHO (หรือสำหรับทุกๆฟังก์ชัน) จะมีตารางค่า WHAT ที่ถูกกำหนดไว้โดยเฉพาะ

ทั้งนี้ WHAT สามารถมีพารามิเตอร์เพิ่มเติมได้: WHAT#PAR1#PAR2… #PARn.

ตัวอย่างแอคชั่นที่ต้องการทำ: เปิดไฟ, ให้ความสว่างเป็น 75%, ปิดชัทเตอร์, เปิดวิทยุ, ...ฯลฯ--switch ON light, dimmer to 75%, switch DOWN shutter, radio ON, etc…ตัวอย่างของสถานะ: ไฟสว่าง, ระบบเตือนภัยทำงาน, แบตเตอรี่อันโหลด, ...ฯลฯ--light ON, active alarm, battery unload, etc…

DIMENSION

เป็นช่วงค่าของ value, ซึ่งเป็นค่าพารามิเตอร์เฉพาะสำหรับอ็อบเจกต์ ที่ต้องการควบคุม สำหรับแต่ละ WHO (หรือสำหรับแต่ละฟังก์ชัน) จะมีตารางค่า DIMENSION ที่ถูกกำหนดไว้โดยเฉพาะ

สามารถที่จะร้องขอ, อ่านหรือเขียนค่าของ value ในแต่ละ dimension ได้ โดยสำหรับแต่ละ dimension จะมี prefixed number สำหรับค่า value ที่ถูกกำหนดใน VALUE field

ตัวอย่าง dimension: อุณหภูมิของเซนเซอร์, ระดับเสียงของลำโพง, เวอร์ชันเฟิร์มแวร์ของอุปกรณ์, ...ฯลฯ--sensor temperature, loudspeaker volume, firmware version of a device, etc.

VALUE

เป็นการระบุค่า อ่าน/เขียน สำหรับ value ใน dimension

Message

มี 4 ประเภทของ OpenWebNet Message:

ข้อความคำสั่ง/ สถานะ --(Command/Status Message)

ข้อความสถานะที่ต้องการร้องขอ --(Status Request Message)

ข้อความร้องขอ/อ่าน/เขียน dimension --(Request/Read/Write Dimension Message)

ข้อความแจ้ง --(Acknowledge Message)

ข้อความคำสั่ง/สถานะ --(Command/Status Message) :

*WHO*WHAT*WHERE##

ข้อความสถานะที่ต้องการร้องขอ --(Status Request Message) :

*#WHO*WHERE##

ข้อความร้องขอ/อ่าน/เขียน dimension --(Request/Read/Write Dimension Message) :

*#WHO*WHERE*DIMENSION##

อ่าน: --Read

*#WHO*WHERE*DIMENSION*VALUE1*…*VALUEn##

เขียน: --Write

*#WHO*WHERE*#DIMENSION*VALUE1*…*VALUEn##

ข้อความแจ้ง --(Acknowledge Message ACK) :

*#*1##

ข้อความไม่ถูกต้อง --(NACK) :

*#*0##